package com.fingard.dsp.bank.directbank.icbc02.util;

import com.icbc.api.AbstractIcbcRequest;
import com.icbc.api.BizContent;
import com.icbc.api.internal.util.fastjson.annotation.JSONField;

public class MybankPayInsuranceCustprtlCustprtlconfirmRequestV1
        extends AbstractIcbcRequest<MybankPayInsuranceCustprtlCustprtlconfirmResponseV1> {
    @Override
    public Class<MybankPayInsuranceCustprtlCustprtlconfirmResponseV1> getResponseClass() {
        return MybankPayInsuranceCustprtlCustprtlconfirmResponseV1.class;
    }

    @Override
    public boolean isNeedEncrypt() {
        return true;
    }

    @Override
    public String getMethod() {
        return "POST";
    }

    @Override
    public Class<? extends BizContent> getBizContentClass() {
        return CustprtlConfirmRequestV1Biz.class;
    }

    public static class CustprtlConfirmRequestV1Biz implements BizContent {
        @JSONField(name = "biz_content")
        private BizContentInfo bizContentInfo;

        public BizContentInfo getBizContentInfo() {
            return bizContentInfo;
        }

        public void setBizContentInfo(BizContentInfo bizContentInfo) {
            this.bizContentInfo = bizContentInfo;
        }
    }

    public static class BizContentInfo {
        @JSONField(name = "common_req_info")
        private CommonReqInfo commonReqInfo;

        @JSONField(name = "trans_req_info")
        private TransReqInfo transReqInfo;

        public CommonReqInfo getCommonReqInfo() {
            return commonReqInfo;
        }

        public void setCommonReqInfo(CommonReqInfo commonReqInfo) {
            this.commonReqInfo = commonReqInfo;
        }

        public TransReqInfo getTransReqInfo() {
            return transReqInfo;
        }

        public void setTransReqInfo(TransReqInfo transReqInfo) {
            this.transReqInfo = transReqInfo;
        }
    }

    public static class CommonReqInfo {
        @JSONField(name = "trans_date")
        private String transDate;

        @JSONField(name = "trans_time")
        private String transTime;

        @JSONField(name = "zoneno")
        private String zoneNo;

        @JSONField(name = "brno")
        private String brNo;

        @JSONField(name = "insuid")
        private String insuId;

        @JSONField(name = "chan_no")
        private String chanNo;

        public String getTransDate() {
            return transDate;
        }

        public void setTransDate(String transDate) {
            this.transDate = transDate;
        }

        public String getTransTime() {
            return transTime;
        }

        public void setTransTime(String transTime) {
            this.transTime = transTime;
        }

        public String getZoneNo() {
            return zoneNo;
        }

        public void setZoneNo(String zoneNo) {
            this.zoneNo = zoneNo;
        }

        public String getBrNo() {
            return brNo;
        }

        public void setBrNo(String brNo) {
            this.brNo = brNo;
        }

        public String getInsuId() {
            return insuId;
        }

        public void setInsuId(String insuId) {
            this.insuId = insuId;
        }

        public String getChanNo() {
            return chanNo;
        }

        public void setChanNo(String chanNo) {
            this.chanNo = chanNo;
        }
    }

    public static class TransReqInfo {
        @JSONField(name = "cust_name")
        private String custName;
        @JSONField(name = "cust_id_type")
        private String custIdType;
        @JSONField(name = "cust_id_no")
        private String custIdNo;
        @JSONField(name = "prtl_no")
        private String prtlNo;
        @JSONField(name = "sm_cfm_code")
        private String smCfmCode;

        public String getCustName() {
            return custName;
        }

        public void setCustName(String custName) {
            this.custName = custName;
        }

        public String getCustIdType() {
            return custIdType;
        }

        public void setCustIdType(String custIdType) {
            this.custIdType = custIdType;
        }

        public String getCustIdNo() {
            return custIdNo;
        }

        public void setCustIdNo(String custIdNo) {
            this.custIdNo = custIdNo;
        }

        public String getPrtlNo() {
            return prtlNo;
        }

        public void setPrtlNo(String prtlNo) {
            this.prtlNo = prtlNo;
        }

        public String getSmCfmCode() {
            return smCfmCode;
        }

        public void setSmCfmCode(String smCfmCode) {
            this.smCfmCode = smCfmCode;
        }
    }
}
